package movTeclado;

import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.Timer;

import Entidades.NaveEnemiga;


/**
 * Clase menteEnterprise
* @author Jonathan Fritz - Santiago Salem - Kevin Schweitzer.
 */
public class menteEnterprise extends mente implements ActionListener {
	
	private Timer timer;
	private boolean funcionando = true;
	
	/**
	 * Prepara la mente.
	 */
	public void preparar() {
		
		int valorEntero = (int)Math.floor(Math.random()*(300-0+1)+0); 
		this.nave.setLocation(0, valorEntero);		
		
		timer =  new Timer (1500, this);
		timer.start();		
	}

	/**
	 * Finaliza la ejecucion de la mente.
	 */
	public void fin(){
		super.fin();
		timer.stop();
		funcionando = false;
	}
	
	/**
	 * Realiza la accion de disparar.
	 * @param e, evento capturado.
	 */
	public void actionPerformed(ActionEvent e) {
		int anchoNave = nave.getWidth();
		 Point pos = nave.getLocation();
		 if(pos.y > 0 && (pos.x>= 0 + anchoNave  && pos.x< juego.getFrameJuego().getWidth() - anchoNave))
			 juego.dispararoEspecial(nave.getLocation(),(NaveEnemiga) nave);
	 }

	
	/**
	 * Lleva a cabo el funcionamiento de la mente.
	 */
	public void run() {
		try {
			menteEnterprise.sleep(50);
		} catch (InterruptedException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

		Point pos = this.nave.getLocation();
		
		
		boolean hacer = true;
		
		while(hacer) {
			
		
			while( pos.x < this.juego.getFrameJuego().getWidth() - this.nave.getWidth() )  { //hasta que salga de pantalla
				try {
					menteEnterprise.sleep(150);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
	
				//Mueve nave
				int v = pos.x + nave.getVelocidad();
				this.nave.setLocation( v, pos.y);
				pos = this.nave.getLocation();
				this.juego.getFrameJuego().repaint();					
				
			}
			juego.getNavesEnPantalla().remove(nave); //Cuando salgo elimino de lista en pantalla
			nave.setLocation(-200, pos.y); // La coloca al costado
			pos = nave.getLocation();
		}
	}

}


